package org.jpoligonos.persistencia;

import org.jpoligonos.beans.Datos;
import org.jpoligonos.beans.*;
import org.jpoligonos.controller.*;
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
import java.util.*;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.util.Map;
import java.util.Iterator;
import java.util.HashMap;
import java.util.Map;
 import javax.sql.DataSource;
import org.jpoligonos.generales.Mensajeria;
import org.jpoligonos.generales.Sesion;


/**
*
* @author
*/

public class DatosPersistencia implements Serializable {
private static final long serialVersionUID = 1L;
public static Exception excepcion;
public static boolean esMensaje = false;
public static Connection con = null;
public static java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/jpoligonos/properties/mensajes");

public DatosPersistencia(){
         esMensaje =false;
}


/**
*
* Insert()
*/

public static boolean Insert (Datos datos ) {
  excepcion = null;
  try {
      esMensaje =false;
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
   
    proyecto.setIdproyecto(datos.getIdproyecto());
   
      if(!proyectoController.Exists(proyecto)){
            excepcion=new Exception(bundle.getString("msg.nofoundrecordcodetable") + "proyecto" );
           esMensaje = true;
           return false;
      }
     if (!Connect()) {
         return false;
      }
      PreparedStatement pinsert = null;
      String sql = "insert into datos(idproyecto,est,dist,cuadrante,rumbo,coseno,seno,norte,sur,este,oeste,latcorregida,loncorregida,latitud,longitud,doblelongitud,areamas,areamenos)  values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
      pinsert = con.prepareStatement(sql);
              pinsert.setInt(1,datos.getIdproyecto());
        pinsert.setInt(2,datos.getEst());
        pinsert.setDouble(3,datos.getDist());
        pinsert.setString(4,datos.getCuadrante());
        pinsert.setString(5,datos.getRumbo());
        pinsert.setDouble(6,datos.getCoseno());
        pinsert.setDouble(7,datos.getSeno());
        pinsert.setDouble(8,datos.getNorte());
        pinsert.setDouble(9,datos.getSur());
        pinsert.setDouble(10,datos.getEste());
        pinsert.setDouble(11,datos.getOeste());
        pinsert.setDouble(12,datos.getLatcorregida());
        pinsert.setDouble(13,datos.getLoncorregida());
        pinsert.setDouble(14,datos.getLatitud());
        pinsert.setDouble(15,datos.getLongitud());
        pinsert.setDouble(16,datos.getDoblelongitud());
        pinsert.setDouble(17,datos.getAreamas());
        pinsert.setDouble(18,datos.getAreamenos());
      int filas= pinsert.executeUpdate();
      pinsert.close();
      con.close();
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
 }


/**
*
* Update()
*/

public static boolean Update(Datos datos ) {
  excepcion = null;
  try {
      esMensaje =false;
     if (!Connect()) {
         return false;
      }
      PreparedStatement pupdate = null;
      String sql = "update datos set  idproyecto=?, est=?, dist=?, cuadrante=?, rumbo=?, coseno=?, seno=?, norte=?, sur=?, este=?, oeste=?, latcorregida=?, loncorregida=?, latitud=?, longitud=?, doblelongitud=?, areamas=?, areamenos=?  where  idproyecto ='"+datos.getIdproyecto()+"' and  est ='"+datos.getEst()+"'  ";
      pupdate= con.prepareStatement(sql);
      pupdate.setInt(1,datos.getIdproyecto());
pupdate.setInt(2,datos.getEst());
pupdate.setDouble(3,datos.getDist());
pupdate.setString(4,datos.getCuadrante());
pupdate.setString(5,datos.getRumbo());
pupdate.setDouble(6,datos.getCoseno());
pupdate.setDouble(7,datos.getSeno());
pupdate.setDouble(8,datos.getNorte());
pupdate.setDouble(9,datos.getSur());
pupdate.setDouble(10,datos.getEste());
pupdate.setDouble(11,datos.getOeste());
pupdate.setDouble(12,datos.getLatcorregida());
pupdate.setDouble(13,datos.getLoncorregida());
pupdate.setDouble(14,datos.getLatitud());
pupdate.setDouble(15,datos.getLongitud());
pupdate.setDouble(16,datos.getDoblelongitud());
pupdate.setDouble(17,datos.getAreamas());
pupdate.setDouble(18,datos.getAreamenos());
      int filas= pupdate.executeUpdate();
      pupdate.close();
      con.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.noupdate"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* Update()
*/

public static boolean Update(String sqlupdate ) {
  excepcion = null;
  try {
      esMensaje =false;
     if (!Connect()) {
         return false;
      }
      PreparedStatement pupdate = null;
      String sql = "update  datos set " + sqlupdate +"";
      pupdate= con.prepareStatement(sql);
      int filas= pupdate.executeUpdate();
      pupdate.close();
      con.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.noupdate"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* UpdatePrimaryKey()
*/

public static boolean UpdatePrimaryKey(Datos datos_old , Datos datos) {
  excepcion = null;
  try {
      esMensaje =false;
     if (!Connect()) {
         return false;
      }
      PreparedStatement pupdate = null;
      String sql = "update datos set  idproyecto=? ,  est=?  where  idproyecto ='"+datos_old.getIdproyecto()+"' and  est ='"+datos_old.getEst()+"'  ";
      pupdate= con.prepareStatement(sql);
      pupdate.setInt(1,datos.getIdproyecto());pupdate.setInt(2,datos.getEst());
      int filas= pupdate.executeUpdate();
      pupdate.close();
      con.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.noupdate"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* Delete()
*/

public static boolean Delete(Datos datos ) {
  excepcion = null;
  try {
      esMensaje =false;
     if (!Connect()) {
         return false;
      }
      PreparedStatement pdelete = null;
      String sql = "delete from datos  where  idproyecto = ? and  est = ?  ";
      pdelete= con.prepareStatement(sql);
      pdelete.setInt(1,datos.getIdproyecto());
pdelete.setInt(2,datos.getEst());
      int filas= pdelete.executeUpdate();
      pdelete.close();
      con.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.nodelete"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* Delete()
*/

public static boolean Delete(String sqldelete ) {
  excepcion = null;
  try {
      esMensaje =false;
     if (!Connect()) {
         return false;
      }
      PreparedStatement pdelete = null;
      String sql = "delete from datos where " + sqldelete +"";
      pdelete= con.prepareStatement(sql);
      int filas= pdelete.executeUpdate();
      pdelete.close();
      con.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.nodelete"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* DeleteAll()
*/

public static boolean DeleteAll() {
  excepcion = null;
  try {
      esMensaje =false;
     if (!Connect()) {
         return false;
      }
      PreparedStatement pdelete = null;
      String sql = "delete from datos  ";
      pdelete= con.prepareStatement(sql);
      int filas= pdelete.executeUpdate();
      pdelete.close();
      con.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.nodeleteall"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* Exists()
*/



public static boolean Exists(Datos datos) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return false;
      }
      String sql = "select * from datos where idproyecto='"+datos.getIdproyecto()+"' and est='"+datos.getEst()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +" " + bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return false;
   }
    rs.close();
    psquery.close();
    con.close();
 return true;
} catch (Exception ex) {
      excepcion = ex;
}
  return false;
}


/**
*
* findByPrimaryKey()
*/



public static Datos findByPrimaryKey(Datos datos) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      String sql = "select * from datos where idproyecto='"+datos.getIdproyecto()+"' and est='"+datos.getEst()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
   proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
   if (proyecto2== null) {
       //no existe registro con ese codigo 
   } else {
   proyecto= proyecto2;
   datos.setProyecto(proyecto);
     }
            datos.setIdproyecto(rs.getInt("idproyecto"));
datos.setEst(rs.getInt("est"));
datos.setDist(rs.getDouble("dist"));
datos.setCuadrante(rs.getString("cuadrante"));
datos.setRumbo(rs.getString("rumbo"));
datos.setCoseno(rs.getDouble("coseno"));
datos.setSeno(rs.getDouble("seno"));
datos.setNorte(rs.getDouble("norte"));
datos.setSur(rs.getDouble("sur"));
datos.setEste(rs.getDouble("este"));
datos.setOeste(rs.getDouble("oeste"));
datos.setLatcorregida(rs.getDouble("latcorregida"));
datos.setLoncorregida(rs.getDouble("loncorregida"));
datos.setLatitud(rs.getDouble("latitud"));
datos.setLongitud(rs.getDouble("longitud"));
datos.setDoblelongitud(rs.getDouble("doblelongitud"));
datos.setAreamas(rs.getDouble("areamas"));
datos.setAreamenos(rs.getDouble("areamenos"));
    }
    rs.close();
    psquery.close();
    con.close();
 return datos;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByIdproyecto()
*/

public static List<Datos> findByIdproyecto(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where idproyecto='"+datos.getIdproyecto()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByEst()
*/

public static List<Datos> findByEst(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where est='"+datos.getEst()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByDist()
*/

public static List<Datos> findByDist(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where dist='"+datos.getDist()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByCuadrante()
*/

public static List<Datos> findByCuadrante(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where cuadrante='"+datos.getCuadrante()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByRumbo()
*/

public static List<Datos> findByRumbo(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where rumbo='"+datos.getRumbo()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByCoseno()
*/

public static List<Datos> findByCoseno(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where coseno='"+datos.getCoseno()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findBySeno()
*/

public static List<Datos> findBySeno(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where seno='"+datos.getSeno()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByNorte()
*/

public static List<Datos> findByNorte(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where norte='"+datos.getNorte()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findBySur()
*/

public static List<Datos> findBySur(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where sur='"+datos.getSur()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByEste()
*/

public static List<Datos> findByEste(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where este='"+datos.getEste()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByOeste()
*/

public static List<Datos> findByOeste(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where oeste='"+datos.getOeste()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByLatcorregida()
*/

public static List<Datos> findByLatcorregida(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where latcorregida='"+datos.getLatcorregida()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByLoncorregida()
*/

public static List<Datos> findByLoncorregida(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where loncorregida='"+datos.getLoncorregida()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByLatitud()
*/

public static List<Datos> findByLatitud(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where latitud='"+datos.getLatitud()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByLongitud()
*/

public static List<Datos> findByLongitud(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where longitud='"+datos.getLongitud()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByDoblelongitud()
*/

public static List<Datos> findByDoblelongitud(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where doblelongitud='"+datos.getDoblelongitud()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByAreamas()
*/

public static List<Datos> findByAreamas(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where areamas='"+datos.getAreamas()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByAreamenos()
*/

public static List<Datos> findByAreamenos(Datos datos,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
      String sql = "select * from datos where areamenos='"+datos.getAreamenos()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* locateByParameters()
*/

public static List<Datos> locateByParameters(Map parametros,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
  String sql = "select * from datos";
  if (parametros != null) {
      Iterator it = parametros.entrySet().iterator();
      StringBuilder sb = new StringBuilder("");
      int i = 0;
      while (it.hasNext()) {
          if (i != 0){
            sb.append(" and ");
         }
         i++;
        Map.Entry e = (Map.Entry) it.next();
        sb.append(e.getKey() +"= '"+  e.getValue()+"'");
      }
      if (!sb.toString().equals("")){
         sql = sql + " where " + sb.toString();
      }
   }
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* Double Func(String funcion, String campo)
*/



public static Double Func(String funcion, String campo) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return 0.0;
      }
      String sql = "select "+funcion+"("+campo+") as contador from datos";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return 0.0;
   }
    Double tmp =0.0;
   rs.beforeFirst();
   while (rs.next()) {
    tmp =  rs.getDouble("contador");
    }
    rs.close();
    psquery.close();
    con.close();
 return tmp;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0.0;
}


/**
*
* Double Func(String funcion, String campo,String where)
*/



public static Double Func(String funcion, String campo, String where) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return 0.0;
      }
      String sql = "select "+funcion+"("+campo+") as contador from datos where "+where +" ";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return 0.0;
   }
    Double tmp =0.0;
   rs.beforeFirst();
   while (rs.next()) {
    tmp =  rs.getDouble("contador");
    }
    rs.close();
    psquery.close();
    con.close();
 return tmp;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0.0;
}


/**
*
* Count()
*/



public static Integer Count() {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return 0;
      }
      String sql = "select count(*) as contador from datos";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return 0;
   }
   rs.beforeFirst();
   while (rs.next()) {
    x =  rs.getInt("contador");
    }
    rs.close();
    psquery.close();
    con.close();
 return x;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0;
}


/**
*
* Contador(String sqlquery)
*/



public static Integer Count(String sqlquery) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return 0;
      }
      String sql = "select count(*) as contador from datos where  " + sqlquery +"";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return 0;
   }
   rs.beforeFirst();
   while (rs.next()) {
    x =  rs.getInt("contador");
    }
    rs.close();
    psquery.close();
    con.close();
 return x;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0;
}


/**
*
* Query()
*/

public static List<Datos> Query(String query,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
  String sql = "select * from datos where " + query +"";
  if (query == null || query.equals("")) {
  return null;
   }
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* getListRecords()
*/

public static List<Datos> getListRecords(Map parametros,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;
      if (!Connect()) {
         return null;
      }
      List<Datos> list = new ArrayList<>();
  String sql = "select * from datos";
  if (parametros != null) {
      Iterator it = parametros.entrySet().iterator();
      StringBuilder sb = new StringBuilder("");
      while (it.hasNext()) {
        Map.Entry e = (Map.Entry) it.next();
        sb.append(e.getKey() +"="+  e.getValue());
      }
      if (!sb.toString().equals("")){
         sql = sql + " where " + sb.toString();
      }
   }
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "datos" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      con.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
       
Proyecto proyecto = new Proyecto();
Proyecto proyecto2 = new Proyecto();
ProyectoController proyectoController = new ProyectoController();
        Datos datos2 = new Datos(
         rs.getInt("idproyecto"),rs.getInt("est"),rs.getDouble("dist"),rs.getString("cuadrante"),rs.getString("rumbo"),rs.getDouble("coseno"),rs.getDouble("seno"),rs.getDouble("norte"),rs.getDouble("sur"),rs.getDouble("este"),rs.getDouble("oeste"),rs.getDouble("latcorregida"),rs.getDouble("loncorregida"),rs.getDouble("latitud"),rs.getDouble("longitud"),rs.getDouble("doblelongitud"),rs.getDouble("areamas"),rs.getDouble("areamenos"));
            
    proyecto.setIdproyecto(rs.getInt("idproyecto"));
            
  if(withRelation){
     proyecto2 =  proyectoController.findByPrimaryKey(proyecto);
     if (proyecto2== null) {
       //not found records 
     } else {
     proyecto= proyecto2;
     datos2.setProyecto(proyecto);
       }
   }
       list.add(datos2);
    }
    rs.close();
    psquery.close();
    con.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
 }


/**
*
* Connect()
*/



public static boolean Connect() {
try {
 Sesion sesion = new Sesion();
  con = sesion.Connect();
  if (con == null){
      return false;
   }
  return true;
  } catch (Exception ex) {
Mensajeria.MensajeError(ex, "Connect()");
 }
    return false;
 }


}
